package com.whfc.emp.dao;

import com.whfc.emp.dto.AppSyncRecordDTO;
import com.whfc.emp.entity.AppSyncRecord;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface AppSyncRecordMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(AppSyncRecord record);

    int insertSelective(AppSyncRecord record);

    AppSyncRecord selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(AppSyncRecord record);

    int updateByPrimaryKey(AppSyncRecord record);

    /**
     * 更新同步类型
     *
     * @param platform
     * @param type
     * @param objectId
     */
    void updateSyncType(@Param("platform") Integer platform,
                        @Param("type") Integer type,
                        @Param("objectId") Integer objectId);

    /**
     * 查询已同步的数据
     * @param objectIds
     * @param type
     * @param platform
     * @return
     */
    List<AppSyncRecordDTO> selectSyncRecordList(@Param("objectIds") List<Integer> objectIds,
                                                @Param("type") Integer type,
                                                @Param("platform") Integer platform);


    /**
     * 更新同步状态
     *
     * @param platform
     * @param type
     * @param id
     * @param syncFlag
     * @param syncType
     * @param syncTime
     * @param userId
     * @param userName
     */
    void updateSyncFlag(@Param("platform") Integer platform,
                        @Param("type") Integer type,
                        @Param("id") Integer id,
                        @Param("syncFlag") Integer syncFlag,
                        @Param("syncType") Integer syncType,
                        @Param("syncTime") Date syncTime,
                        @Param("userId") Integer userId,
                        @Param("userName") String userName);
}